public function get(string $id)
    {
        if (!$this->properties()->containSection($id)) {
            if (!$this->hasFallback()) {
                throw new \OutOfBoundsException('No database configuration known for database requested with id ' . $id);
            }

            $id = DatabaseConfiguration::DEFAULT_ID;
        }

        if (!$this->properties()->containValue($id, 'dsn')) {
            throw new \LogicException('Missing dsn property in database configuration with id ' . $id);
        }

        return DatabaseConfiguration::fromArray(
                $id,
                $this->properties()->value($id, 'dsn'),
                $this->properties()->section($id)
        );
    }