public function updateTable($connection = null)
    {
        $connection = $connection ? : $this->connection;
        $schemaManager = $connection->getSchemaManager();

        if (!$schemaManager->tablesExist([$this->tableName])) {
            return false;
        }

        $table = new Table($this->tableName);
        $this->buildTable($table);
        $oldTable = $schemaManager->listTableDetails($this->tableName);

        $comparator = new Comparator();
        $diff = $comparator->diffTable($oldTable, $table);

        if (!$diff) {
            return null;
        }

        $schemaManager->alterTable($diff);

        return true;
    }