I am trying to use your org.hibernate.tool.hbm2ddl.DatabaseMetadata in my own purposes. I found that it works more or less well when table names are unquoted. But it does not work correctly in case of using quoted identifiers. E.g. it does not work in HSQLDB. In method getTableMetadata you use methods storesUpperCaseIdentifiers and storesLowerCaseIdentifiers to uppercase or lowercase the table names. But it is not correctly for quoted identifiers.
Possibly we should have some tag (boolean quoted) which will specify using quoted identifiers in system and use the following methods instead: storesUpperCaseQuotedIdentifiers, storesLowerCaseQuotedIdentifiers and possibly supportsMixedCaseQuotedIdentifiers.