public function selectAllExcept($table, array $excludedFields, $overwrite = false)
    {
        if ($table instanceof Association) {
            $table = $table->getTarget();
        }

        if (!($table instanceof Table)) {
            throw new \InvalidArgumentException('You must provide either an Association or a Table object');
        }

        $fields = array_diff($table->getSchema()->columns(), $excludedFields);
        $aliasedFields = $this->aliasFields($fields);

        return $this->select($aliasedFields, $overwrite);
    }