private void retrieveForeignKeysUsingSql(final InformationSchemaViews informationSchemaViews) throws SchemaCrawlerSQLException { final String fkSql = informationSchemaViews.getForeignKeysSql(); LOGGER.log(Level.FINER, String.format("Executing SQL to retrieve foreign keys: %n%s", fkSql)); final NamedObjectList<MutableForeignKey> foreignKeys = new NamedObjectList<>(); final Connection connection = getDatabaseConnection(); try (final Statement statement = connection.createStatement(); final MetadataResultSet results = new MetadataResultSet(executeSql(statement, fkSql)); ) { createForeignKeys(results, foreignKeys); } catch (final SQLException e) { throw new SchemaCrawlerSQLException("Could not retrieve foreign keys from SQL:\n" + fkSql, e); } }