Transaction Logic is an extension of classical predicate calculus for representing declarative and procedural knowledge in logic programming, databases, and artificial intelligence. Since it provides a logical foundation for the phenomenon of state changes, it has been successful in areas as diverse as workflows, planning, reasoning about actions, Web services, security policies, active databases and more. Although a number of implementations of Transaction Logic exist, none is logically complete due to the time and space complexity of such implementations. In the first part of this thesis, we describe an approach for performing actions in the logic, which has better complexity and termination properties via a logically complete tabling evaluation strategy. Then we describe a series of optimizations, which make this algorithm practical and analyze their performance on a set of benchmarks. Our performance evaluation study shows that the tabling algorithm can scale well both in time and space. In the second part of the thesis, we extend Transaction Logic in the direction of defeasible reasoning, which has a number of interesting applications, including specification of defaults in action theories and heuristics for directed search in planning. In this setting we show that heuristics expressed as defeasible actions can significantly reduce the search space and thus the execution time and space requirements.