Columns TYPE_NAME, NULLABLE, SEARCHABLE are returned as nullable but should not be. ODBC variant correctly makes these non-nullable.
From a quick look at the metadata query this may in fact be a language issue. The query is based upon a VALUES clauses that has a list of literals that are not NULL in these columns. Thus one would expect the implied type definition to be not nullable. However some of the columns, e.g. 2 DATA_TYPE, have a similar list of non-NULL literals are do appear as non-NULLABLE with getTypeInfo. Not sure what leads to the different behaviour.
Look for comments in DatabaseMetaDataTest.testGetTypeInfo() with this bug number for code t hat shows the issue.