public bool ReadIdentifierPositions(Document document, VersionStamp syntaxVersion, string identifier, List<int> positions, CancellationToken cancellationToken)
        {
            Contract.ThrowIfTrue(string.IsNullOrWhiteSpace(identifier));

            if (!PersistenceEnabled)
            {
                return false;
            }

            if (!TryGetProjectAndDocumentKey(document, out var key))
            {
                return false;
            }

            var persistedVersion = GetIdentifierSetVersion(key);
            if (!document.CanReusePersistedSyntaxTreeVersion(syntaxVersion, persistedVersion))
            {
                return false;
            }

            if (!TryGetUniqueIdentifierId(identifier, out var identifierId))
            {
                return false;
            }

            return EsentExceptionWrapper(key, identifierId, positions, ReadIdentifierPositions, cancellationToken);
        }