docs: public static Set<String> getForeignKeys(DriverTypeEnum.ConnectionProperties theConnectionProperties, String theTableName, String theForeignTable) throws SQLException {
  		DataSource dataSource = Objects.requireNonNull(theConnectionProperties.getDataSource());
  		try (Connection connection = dataSource.getConnection()) {
  			return theConnectionProperties.getTxTemplate().execute(t -> {
  				DatabaseMetaData metadata;
  				try {
  					metadata = connection.getMetaData();
  					ResultSet indexes = metadata.getCrossReference(connection.getCatalog(), connection.getSchema(), massageIdentifier(metadata, theTableName), connection.getCatalog(), connection.getSchema(), massageIdentifier(metadata, theForeignTable));
  
  					Set<String> columnNames = new HashSet<>();
  					while (indexes.next()) {
  						String tableName = toUpperCase(indexes.getString("PKTABLE_NAME"), Locale.US);
  						if (!theTableName.equalsIgnoreCase(tableName)) {
  							continue;
  						}
  						tableName = toUpperCase(indexes.getString("FKTABLE_NAME"), Locale.US);
  						if (!theForeignTable.equalsIgnoreCase(tableName)) {
  							continue;
  						}
  
  						String fkName = indexes.getString("FK_NAME");
  						fkName = toUpperCase(fkName, Locale.US);
  						columnNames.add(fkName);
  					}
  
  					return columnNames;
  				} catch (SQLException e) {
  					throw new InternalErrorException(e);
  				}
  			});
  		}
  	}