public function getSchemaTables(Schema $schema, Config $config)
    {
        if ($this->tableSchemas !== null) {
            return $this->tableSchemas;
        }

        /** @var $fieldManager FieldManager */
        $fieldManager = $config->getFields();
        $contentTypes = $this->getNormalisedContentTypes($config);
        $tables = [];

        foreach ($this->tables->keys() as $name) {
            $contentType = $contentTypes[$name];
            /** @var ContentType $table */
            $table = $this->tables[$name];
            $tables[$name] = $table->buildTable($schema, $name, $this->charset, $this->collate);
            if (isset($contentType['fields']) && is_array($contentType['fields'])) {
                $this->addContentTypeTableColumns($this->tables[$name], $tables[$name], $contentType['fields'], $fieldManager);
            }
        }

        return $this->tableSchemas = $tables;
    }