Table redirect / filter / trigger on select
You could do something like this:

create or replace package body pkg1 
is
...
begin
  dbms_application_info.set_module('PKG1');
end;
/

create or replace package body pkg2 
is
...
begin
  dbms_application_info.set_module('PKG2');
end;
/


You can then access the module information using SYS_CONTEXT():

create or replace view v1 
as
select
  case 
    when sys_context('USERENV','MODULE') = 'PKG1' then to_char(grade_pct)
    when sys_context('USERENV','MODULE') = 'PKG2' then calc_grade_letter(grade_pct)
    else ''
  end
...
from
  yourtable


Instead of the function calculating the letter from percentage you could use a view to select from, of course. Be aware that the performance of queries against that view will likely suffer because of all the PL/SQL calls.