class DatabaseRollbackFutureTask extends AbstractChangeLogBasedTask {
    @Override
    public void executeWithLiquibaseClassloader() throws BuildException {<FILL_FUNCTION_BODY>}

    @Override
    protected void validateParameters() {
        super.validateParameters();

        if(getOutputFile() == null) {
            throw new BuildException("Output file is required.");
        }
    }
}

        Liquibase liquibase = getLiquibase();
        try (Writer outputFileWriter = getOutputFileWriter()) {
            liquibase.futureRollbackSQL(new Contexts(getContexts()), getLabelFilter(), outputFileWriter);
        } catch (LiquibaseException e) {
            throw new BuildException("Unable to generate future rollback SQL: " + e.getMessage(), e);
        } catch (IOException e) {
            throw new BuildException("Unable to generate future rollback SQL. Error creating output writer.", e);
        }
    
<methods>public non-sealed void <init>() ,public java.lang.String getChangeLogDirectory() ,public java.lang.String getChangeLogFile() ,public liquibase.LabelExpression getLabels() ,public java.lang.String getOutputEncoding() ,public java.lang.String getSearchPath() ,public void setLabelFilter(java.lang.String) ,public void setLabels(java.lang.String) <variables>private java.lang.String changeLogDirectory,private java.lang.String changeLogFile,private java.lang.String contexts,private liquibase.LabelExpression labelFilter,private java.lang.String outputEncoding,private FileResource outputFile,private java.lang.String searchPath