final public function alter($table, callable $cb)
    {
        $table = $this->getTablePrefixed($table);

        call_user_func_array($cb, [
            $generator = new SQLGenerator($table, $this->adapter->getName(), 'alter')
        ]);

        $sql = sprintf('ALTER TABLE `%s` %s;', $table, $generator->make());

        return $this->executeSqlQuery($sql);
    }