These names must all be the same... the notes are on the same value.

I think you need 4 strings:  the getName() from the first non-null base/ours/theirs as this is the name of the object the note is on, and then the getData().getName() from each non-null base, ours, theirs as that is the name of the blob content for the note.

Something like:

  private static String noteOn(Note base, Note ours, Note theirs) {
    if (base != null)
      return base.name();
    if (ours != null)
      return ours.name();
    return theirs.name();
  }

  private static String noteData(Note n) {
    if (n != null)
      return n.getData().name();
    return "";
  }

  public NotesMergeConflictException(Note base, Note ours, Note theirs) {
    super(MessageFormat.format(JGitText.get().mergeConflictOnNotes(),
      noteOn(base, ours, theirs),
      noteData(base), noteData(ours), noteData(theirs)));