class UpdateCommandStep extends AbstractUpdateCommandStep implements CleanUpCommandStep {

    public static final String[] LEGACY_COMMAND_NAME = {"migrate"};
    public static String[] COMMAND_NAME = {"update"};

    public static final CommandArgumentDefinition<String> CHANGELOG_FILE_ARG;

    public static final CommandArgumentDefinition<DatabaseChangeLog> CHANGELOG_ARG;
    public static final CommandArgumentDefinition<String> LABEL_FILTER_ARG;
    public static final CommandArgumentDefinition<String> CONTEXTS_ARG;

    static {
        CommandBuilder builder = new CommandBuilder(COMMAND_NAME, LEGACY_COMMAND_NAME);
        CHANGELOG_ARG = builder.argument("databaseChangelog", DatabaseChangeLog.class).hidden().build();
        CHANGELOG_FILE_ARG = builder.argument(CommonArgumentNames.CHANGELOG_FILE, String.class)
                .required().description("The root changelog").supersededBy(CHANGELOG_ARG).build();
        CHANGELOG_ARG.setSupersededBy(CHANGELOG_FILE_ARG);
        LABEL_FILTER_ARG = builder.argument("labelFilter", String.class)
                .addAlias("labels")
                .description("Changeset labels to match")
                .build();
        CONTEXTS_ARG = builder.argument("contextFilter", String.class)
                .addAlias("contexts")
                .description("Changeset contexts to match")
                .build();
    }

    @Override
    public String getChangelogFileArg(CommandScope commandScope) {
        return commandScope.getArgumentValue(CHANGELOG_FILE_ARG);
    }

    @Override
    public String getContextsArg(CommandScope commandScope) {
        return commandScope.getArgumentValue(CONTEXTS_ARG);
    }

    @Override
    public String getLabelFilterArg(CommandScope commandScope) {
        return commandScope.getArgumentValue(LABEL_FILTER_ARG);
    }

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

    @Override
    public UpdateSummaryEnum getShowSummary(CommandScope commandScope) {
        return (UpdateSummaryEnum) commandScope.getDependency(UpdateSummaryEnum.class);
    }

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

    @Override
    public void adjustCommandDefinition(CommandDefinition commandDefinition) {
        commandDefinition.setShortDescription("Deploy any changes in the changelog file that have not been deployed");
        if (commandDefinition.is(LEGACY_COMMAND_NAME)) {
            commandDefinition.setHidden(true);
        }
    }

    @Override
    public void validate(CommandScope commandScope) throws CommandValidationException {
        // update null checksums when running validate.
        commandScope.addArgumentValue(DatabaseChangelogCommandStep.UPDATE_NULL_CHECKSUMS, Boolean.TRUE);
    }

    @Override
    public void postUpdateLog(int rowsAffected) {
        if (rowsAffected > -1) {
            Scope.getCurrentScope().getUI().sendMessage(String.format(coreBundle.getString("update.successful.with.row.count"), rowsAffected));
        } else {
            Scope.getCurrentScope().getUI().sendMessage(coreBundle.getString("update.successful"));
        }
    }

    @Override
    public List<Class<?>> requiredDependencies() {<FILL_FUNCTION_BODY>}

    @Override
    public void run(CommandResultsBuilder resultsBuilder) throws Exception {
        setDBLock(false);
        super.run(resultsBuilder);
    }
}

        List<Class<?>> deps = Arrays.asList(Database.class, DatabaseChangeLog.class, ChangeExecListener.class, ChangeLogParameters.class, UpdateSummaryEnum.class);
        return deps;
    
<methods>public non-sealed void <init>() ,public void cleanUp(liquibase.command.CommandResultsBuilder) ,public abstract java.lang.String getChangelogFileArg(liquibase.command.CommandScope) ,public abstract java.lang.String[] getCommandName() ,public abstract java.lang.String getContextsArg(liquibase.command.CommandScope) ,public abstract java.lang.String getLabelFilterArg(liquibase.command.CommandScope) ,public abstract liquibase.UpdateSummaryEnum getShowSummary(liquibase.command.CommandScope) ,public liquibase.UpdateSummaryOutputEnum getShowSummaryOutput(liquibase.command.CommandScope) ,public liquibase.changelog.ChangeLogIterator getStandardChangelogIterator(liquibase.command.CommandScope, liquibase.database.Database, liquibase.Contexts, liquibase.LabelExpression, liquibase.changelog.DatabaseChangeLog) throws liquibase.exception.LiquibaseException,public liquibase.changelog.ChangeLogIterator getStatusChangelogIterator(liquibase.command.CommandScope, liquibase.database.Database, liquibase.Contexts, liquibase.LabelExpression, liquibase.changelog.DatabaseChangeLog) throws liquibase.exception.LiquibaseException,public boolean isUpToDate(liquibase.command.CommandScope, liquibase.database.Database, liquibase.changelog.DatabaseChangeLog, liquibase.Contexts, liquibase.LabelExpression, java.io.OutputStream) throws liquibase.exception.LiquibaseException, java.io.IOException,public boolean isUpToDateFastCheck(liquibase.command.CommandScope, liquibase.database.Database, liquibase.changelog.DatabaseChangeLog, liquibase.Contexts, liquibase.LabelExpression) throws liquibase.exception.LiquibaseException,public void postUpdateLog(int) ,public List<Class<?>> requiredDependencies() ,public void run(liquibase.command.CommandResultsBuilder) throws java.lang.Exception,public void setFastCheckEnabled(boolean) <variables>private static final java.lang.String DATABASE_UP_TO_DATE_MESSAGE,public static final java.lang.String DEFAULT_CHANGE_EXEC_LISTENER_RESULT_KEY,private boolean isDBLocked,private boolean isFastCheckEnabled,private final Map<java.lang.String,java.lang.Boolean> upToDateFastCheck