class DerbyConnection extends JdbcConnection {

    public DerbyConnection() {}

    public DerbyConnection(Connection connection) {
        super(connection);
    }


    @Override
    public void commit() throws DatabaseException {
        super.commit();

        checkPoint();
    }

    @Override
    public void rollback() throws DatabaseException {
        super.rollback();

        checkPoint();
    }

    private void checkPoint() throws DatabaseException {<FILL_FUNCTION_BODY>}
}

        Statement st = null;
        try {
            st = createStatement();
            final String sql = "CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()";

            for (SqlListener listener : Scope.getCurrentScope().getListeners(SqlListener.class)) {
                listener.writeSqlWillRun(sql);
            }

            st.execute(sql);
        } catch (SQLException e) {
            throw new DatabaseException(e);
        } finally {
            JdbcUtil.closeStatement(st);
        }
    
<methods>public void <init>() ,public void <init>(java.sql.Connection) ,public void attached(liquibase.database.Database) ,public void clearWarnings() throws liquibase.exception.DatabaseException,public void close() throws liquibase.exception.DatabaseException,public void commit() throws liquibase.exception.DatabaseException,public java.sql.Statement createStatement() throws liquibase.exception.DatabaseException,public java.sql.Statement createStatement(int, int, int) throws liquibase.exception.DatabaseException,public java.sql.Statement createStatement(int, int) throws liquibase.exception.DatabaseException,public boolean equals(java.lang.Object) ,public boolean getAutoCommit() throws liquibase.exception.DatabaseException,public java.lang.String getCatalog() throws liquibase.exception.DatabaseException,public java.lang.String getConnectionUserName() ,public int getDatabaseMajorVersion() throws liquibase.exception.DatabaseException,public int getDatabaseMinorVersion() throws liquibase.exception.DatabaseException,public java.lang.String getDatabaseProductName() throws liquibase.exception.DatabaseException,public java.lang.String getDatabaseProductVersion() throws liquibase.exception.DatabaseException,public int getHoldability() throws liquibase.exception.DatabaseException,public java.sql.DatabaseMetaData getMetaData() throws liquibase.exception.DatabaseException,public int getPriority() ,public int getTransactionIsolation() throws liquibase.exception.DatabaseException,public Map<java.lang.String,Class<?>> getTypeMap() throws liquibase.exception.DatabaseException,public java.lang.String getURL() ,public java.sql.Connection getUnderlyingConnection() ,public java.sql.SQLWarning getWarnings() throws liquibase.exception.DatabaseException,public java.sql.Connection getWrappedConnection() ,public int hashCode() ,public boolean isClosed() throws liquibase.exception.DatabaseException,public boolean isReadOnly() throws liquibase.exception.DatabaseException,public java.lang.String nativeSQL(java.lang.String) throws liquibase.exception.DatabaseException,public void open(java.lang.String, java.sql.Driver, java.util.Properties) throws liquibase.exception.DatabaseException,public java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws liquibase.exception.DatabaseException,public java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws liquibase.exception.DatabaseException,public java.sql.CallableStatement prepareCall(java.lang.String) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws liquibase.exception.DatabaseException,public java.sql.PreparedStatement prepareStatement(java.lang.String) throws liquibase.exception.DatabaseException,public void releaseSavepoint(java.sql.Savepoint) throws liquibase.exception.DatabaseException,public void rollback() throws liquibase.exception.DatabaseException,public void rollback(java.sql.Savepoint) throws liquibase.exception.DatabaseException,public static java.lang.String sanitizeUrl(java.lang.String) ,public void setAutoCommit(boolean) throws liquibase.exception.DatabaseException,public void setCatalog(java.lang.String) throws liquibase.exception.DatabaseException,public void setHoldability(int) throws liquibase.exception.DatabaseException,public void setReadOnly(boolean) throws liquibase.exception.DatabaseException,public java.sql.Savepoint setSavepoint() throws liquibase.exception.DatabaseException,public java.sql.Savepoint setSavepoint(java.lang.String) throws liquibase.exception.DatabaseException,public void setTransactionIsolation(int) throws liquibase.exception.DatabaseException,public void setTypeMap(Map<java.lang.String,Class<?>>) throws liquibase.exception.DatabaseException,public boolean supportsBatchUpdates() throws liquibase.exception.DatabaseException<variables>private static final List<liquibase.database.jvm.ConnectionPatterns> JDBC_CONNECTION_PATTERNS,private static final java.util.regex.Pattern PROXY_USER,private java.sql.Connection con