@Override
    public String[] getSinkPrimaryKeys(String tableName) {

        String[] pks;
        String table = getTableNameFromQualifiedTableName(tableName);
        String schema = getSchemaFromQualifiedTableName(tableName);

        pks = getPrimaryKeys(table, schema);

        if (null == pks) {
            LOG.debug("Getting PKs for schema: {} and table: {}. Not found.", schema, table);

            // Trying with uppercase
            table = table != null ? table.toUpperCase() : null;
            schema = schema != null ? schema.toUpperCase() : null;

            pks = getPrimaryKeys(table, schema);

            if (null == pks) {
                LOG.debug("Getting PKs for schema: {} and table: {}. Not found.", schema, table);

                // Trying with lowercase
                table = table != null ? table.toLowerCase() : null;
                schema = schema != null ? schema.toLowerCase() : null;

                pks = getPrimaryKeys(table, schema);
                if (null == pks) {
                    LOG.debug("Getting PKs for schema: {} and table: {}. Not found.", schema, table);
                    return null;
                }
            }
        }

        LOG.info("Getting PKs for schema: {} and table: {}. Found.", schema, table);

        return pks;
    }
Create a connection to the database; usually used only from within
getConnection(), which enforces a singleton guarantee around the
Connection object.
src/main/java/org/replicadb/manager/SqlManager.java