if I have this interface
public interface someInterface {
  // method 1
  public String getValue(String arg1);
  // method 2
  public String getValue(String arg1         
        
An interface serves as a contract for the users of that interface: you specify what methods are available (in all implementations) and how they are called. If two implementations of an interface need a different method, then that method should not be part of the interface:
public interface Lookup {
}
public class MapLookup implements Lookup {
    public String getValue(String key) {
        //...
    }
}
public class GuavaLookup implements Lookup {
    public String getValue(String row, String column) {
        // ...
    }
}
In your program, you will know which implementation you use, so you can simply call the right function:
public class Program {
    private Lookup lookup = new MapLookup();
    public void printLookup(String key) {
        // I hardcoded lookup to be of type MapLookup, so I can cast:
        System.out.println(((MapLookup)lookup).getValue(key));
    }
}
Alternative approach
If your class Program is more generic and uses dependency injections, you may not know which implementation you have. Then, I would make a new interface Key, which can be either type of key:
public interface Lookup {
    // ...
    public String getValue(Key key);
}
public interface Key {
}
public MapKey implements Key {
    private String key;
    // ...
}
public GuavaKey implements Key {
    private String row, column;
    // ...
}
The dependency injection in your program might come from some factory implementation. Since you cannot know which type of lookup you use, you need a single contract for getValue.
public interface Factory {
    public Lookup getLookup();
    public Key getKey();
}
public class Program {
    private Lookup lookup;
    public Program(Factory factory) {
        lookup = factory.getLookup();
    }
    public void printLookup(Factory factory) {      
        System.out.println((lookup.getValue(factory.getKey()));
    }
}