code: private boolean readHistoricalDataIfNeeded() {
          if (mCanReadHistoricalData && mHistoricalRecordsChanged &&
                  !TextUtils.isEmpty(mHistoryFileName)) {
              mCanReadHistoricalData = false;
              mReadShareHistoryCalled = true;
              readHistoricalDataImpl();
              return true;
          }
          return false;
      }
docs: Reads the historical data if necessary which is it has
  changed, there is a history file, and there is not persist
  in progress.
  
  @return Whether reading was performed.