protected function targetTable(SchemaBuilder $builder): AbstractTable
    {
        $target = $this->getDefinition()->targetContext();
        if (empty($target)) {
            throw new RelationSchemaException(sprintf(
                "Unable to get target context '%s' in '%s'.'%s'",
                $this->getDefinition()->getTarget(),
                $this->getDefinition()->sourceContext()->getClass(),
                $this->getDefinition()->getName()
            ));
        }

        return $builder->requestTable($target->getTable(), $target->getDatabase());
    }