protected function runDown($file, $migration, $pretend = false)
    {
        // First we will get the file name of the migration so we can resolve out an
        // instance of the migration. Once we get an instance we can either run a
        // pretend execution of the migration or we can run the real migration.
        $instance = $this->resolve(
            $name = $this->getMigrationName($file)
        );

        if ($pretend) {
            $this->pretendToRun($name, $instance, 'down');

            return;
        }

        $this->note(Decorate::notice('Rolling back:') . " {$name}");

        $this->runMigration($instance, 'down');

        // Once we have successfully run the migration "down" we will remove it from
        // the migration repository so it will be considered to have not been run
        // by the application then will be able to fire by any later operation.
        $this->storage->delete($migration->migration);

        $this->note(Decorate::info('Rolled back:') . " {$name}");
    }