A committer on the H2 project suggested that "Actually JDBC metadata is not a reliable source of information in all or almost all drivers, don't trust it.". [1]
Maybe the person is right and we should just do what we think H2 can do, not what H2 actually tells us? In the case of H2 that would mean to not ask the driver I guess?