public function getColumn($columnKey) : TableDataColumn
    {
        $this->validateColumnKey(__METHOD__, $columnKey);
        $this->loadColumns();

        $columnHash = ValueHasher::hash($columnKey);

        if (!isset($this->columns[$columnHash])) {
            throw InvalidArgumentException::format(
                'Invalid column key supplied to %s: expecting one of hashes (%s), value with \'%s\' hash given',
                __METHOD__, Debug::formatValues(array_keys($this->columns)), $columnHash
            );
        }

        return $this->columns[$columnHash];
    }