@Override
  public @Nullable AnnotatedLineModificationDetails getDetails(int lineNumber) throws VcsException {
    String annotatedContent = myAnnotation.getAnnotatedContent();
    if (annotatedContent == null) return null;

    LineOffsets offsets = LineOffsetsUtil.create(annotatedContent);
    if (lineNumber >= offsets.getLineCount()) {
      return null; // invalid line or content
    }
    String originalLine = getLine(annotatedContent, offsets, lineNumber);

    VcsFileRevision afterRevision = myCurrentRevisionProvider.getRevision(lineNumber);
    String afterContent = loadRevision(myAnnotation.getProject(), afterRevision, myFilePath);
    if (afterContent == null) return null;

    VcsFileRevision beforeRevision = myPreviousRevisionProvider.getPreviousRevision(lineNumber);
    String beforeContent = loadRevision(myAnnotation.getProject(), beforeRevision, myFilePath);
    if (beforeContent == null) {
      return createNewLineDetails(originalLine); // the whole file is new. Skip searching for the original line.
    }

    return createDetailsFor(beforeContent, afterContent, originalLine);
  }
@Override
  public @Nullable AnnotatedLineModificationDetails getDetails(int lineNumber)