public function refreshTableMetadata($tableName, $nameIsRaw = false) {
        $rawName = $nameIsRaw ? $tableName : $this->getRawTableName($tableName);
        $metaTypes = $this->tableMetaImplemented;
        if (isset($this->_tableMetadata[$rawName])) {
            unset($this->_tableMetadata[$rawName]);
        }
        foreach ($metaTypes as $metaType) {
            $promises[] = $this->getTableMetadataRaw($rawName, $metaType, true)->otherwise(function() { return true; });
        }
        return !empty($promises) ? all($promises) : resolve(true);
    }