class MarkNextChangesetRanCommandStep extends AbstractCommandStep {

    public static final String[] COMMAND_NAME = {"markNextChangesetRan"};

    @Override
    public List<Class<?>> requiredDependencies() {
        return Arrays.asList(Database.class, DatabaseChangeLog.class);
    }

    @Override
    public String[][] defineCommandNames() {
        return new String[][] { COMMAND_NAME };
    }

    @Override
    public void adjustCommandDefinition(CommandDefinition commandDefinition) {
        commandDefinition.setShortDescription("Marks the next change you apply as executed in your database");
    }

    @Override
    public void run(CommandResultsBuilder resultsBuilder) throws Exception {<FILL_FUNCTION_BODY>}

    public ChangeLogSyncListener getChangeExecListener() {
        return null;
    }
}

        try {
            CommandScope commandScope = resultsBuilder.getCommandScope();
            DatabaseChangeLog changeLog = (DatabaseChangeLog) commandScope.getDependency(DatabaseChangeLog.class);
            Database database = ((Database) commandScope.getDependency(Database.class));
            Contexts contexts = ((Contexts) commandScope.getDependency(Contexts.class));
            LabelExpression labelExpression = ((LabelExpression) commandScope.getDependency(LabelExpression.class));

            Scope.getCurrentScope().getSingleton(ChangeLogHistoryServiceFactory.class).getChangeLogService(database).generateDeploymentId();

            ChangeLogIterator logIterator = new ChangeLogIterator(changeLog,
                    new NotRanChangeSetFilter(database.getRanChangeSetList()),
                    new ContextChangeSetFilter(contexts),
                    new LabelChangeSetFilter(labelExpression),
                    new DbmsChangeSetFilter(database),
                    new IgnoreChangeSetFilter(),
                    new CountChangeSetFilter(1));

            logIterator.run(new ChangeLogSyncVisitor(database, getChangeExecListener()),
                    new RuntimeEnvironment(database, contexts, labelExpression)
            );
        } finally {
            Scope.getCurrentScope().getSingleton(ExecutorService.class).reset();
        }
    
<methods>public non-sealed void <init>() ,public void adjustCommandDefinition(liquibase.command.CommandDefinition) ,public int getOrder(liquibase.command.CommandDefinition) ,public List<Class<?>> providedDependencies() ,public List<Class<?>> requiredDependencies() ,public void validate(liquibase.command.CommandScope) throws liquibase.exception.CommandValidationException<variables>protected static java.util.ResourceBundle coreBundle