presto-main/src/main/java/io/prestosql/transaction/InMemoryTransactionManager.java/TransactionMetadata/getCatalogNames
class TransactionMetadata:        private synchronized Map<String, CatalogName> getCatalogNames()
        {
            // todo if repeatable read, this must be recorded
            Map<String, CatalogName> catalogNames = new HashMap<>();
            catalogByName.values().stream()
                    .filter(Optional::isPresent)
                    .map(Optional::get)
                    .forEach(catalog -> catalogNames.put(catalog.getCatalogName(), catalog.getConnectorCatalogName()));

            catalogManager.getCatalogs().stream()
                    .forEach(catalog -> catalogNames.putIfAbsent(catalog.getCatalogName(), catalog.getConnectorCatalogName()));

            return ImmutableMap.copyOf(catalogNames);
        }